nodes without memory will currently be disabled by also moving the
physical cores connected to them to other nodes. This leads to nodes
without CPUs and thus to a division by zero in the node allocation
algorithm. Attached patch fixes this by checking for 0 before the
division. This fixes domain creation on boxes with memory-less nodes.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
nodeload[i] += 1
break
for i in range(0, nr_nodes):
- nodeload[i] = int(nodeload[i] * 16 / len(info['node_to_cpu'][i]))
- if len(info['node_to_cpu'][i]) == 0 or i not in node_list:
+ if len(info['node_to_cpu'][i]) == 0:
nodeload[i] += 8
+ else:
+ nodeload[i] = int(nodeload[i] * 16 / len(info['node_to_cpu'][i]))
+ if i not in node_list:
+ nodeload[i] += 8
return map(lambda x: x[0], sorted(enumerate(nodeload), key=lambda x:x[1]))
info = xc.physinfo()